package com.erpanderp.wam.usm.view.user;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import javax.servlet.http.HttpSession;

import org.primefaces.context.RequestContext;

import com.erpanderp.wam.adm.model.entity.CustomLookup;
import com.erpanderp.wam.adm.model.entity.LookupValue;
import com.erpanderp.wam.adm.model.entity.Role;
import com.erpanderp.wam.adm.model.entity.SAPERPModule;
import com.erpanderp.wam.adm.model.service.CustomLookupDAO;
import com.erpanderp.wam.adm.model.service.RoleDAO;
import com.erpanderp.wam.adm.model.service.RolePermissionDAO;
import com.erpanderp.wam.adm.model.service.SAPERPModuleDAO;
import com.erpanderp.wam.usm.model.entity.user.Employee;
import com.erpanderp.wam.usm.model.entity.user.EmployeeAndReporting;
import com.erpanderp.wam.usm.model.entity.user.EmployeeRole;
import com.erpanderp.wam.usm.model.entity.user.WAMUser;
import com.erpanderp.wam.usm.model.service.user.EmployeeAndReportingDAO;
import com.erpanderp.wam.usm.model.service.user.EmployeeDAO;
import com.erpanderp.wam.usm.model.service.user.EmployeeRoleDAO;
import com.erpanderp.wam.util.CommonLookup;
import com.erpanderp.wam.util.ValidationUtil;

@ViewScoped
@ManagedBean
public class EmployeeSearchBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	// variable holding the list of employees search result.
	HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
			.getExternalContext().getSession(true);
	private WAMUser wamUser = (WAMUser) session
			.getAttribute(CommonLookup.SESSION_ATTRIBUTE_WAMUSER);
	private TimeZone timeZone = TimeZone.getDefault();

	private List<Employee> employees = new ArrayList<Employee>();
	private String selectedModule;
	private String location = CommonLookup.LOCATION_HYDERABAD_DISPLAY_NAME;
	private String employeeCode;
	private String employeeName;

	private Role selectedRole = new Role();
	private Long selectedRoleId;
	private Employee selectedCompetencyLead = new Employee();
	private Employee selectedProjectManager = new Employee();
	private Employee selectedCenterHead = new Employee();
	EmployeeDAO employeeDAO;
	SAPERPModuleDAO saperpModuleDAO;
	RoleDAO roleDAO;
	EmployeeRoleDAO employeeRoleDAO;
	EmployeeRole selectedEmployeeRole;
	private Long selectedCompetencyLeadId;
	private Long selectedCenterHeadId;
	private Long selectedProjectManagerId;
	private String assignedProject;
	private Date projectStartDate;
	private Date projectEndDate;
	private Date projectStatus;
	private Map<String, String> modulesMap = new HashMap<String, String>();
	private Map<String, String> locationsMap = new HashMap<String, String>();
	private Map<String, String> designationsMap = new HashMap<String, String>();
	private Map<String, Long> rolesMap = new HashMap<String, Long>();
	private Map<String, Long> competencyLeadsMap = new HashMap<String, Long>();
	private Map<String, Long> projectManagersMap = new HashMap<String, Long>();
	private Map<String, Long> centerHeadsMap = new HashMap<String, Long>();
	private Map<String, String> projectStatusMap = new HashMap<String, String>();
	private Employee selectedEmployee = new Employee();
	private EmployeeAndReporting projectManager = new EmployeeAndReporting();
	private EmployeeAndReporting employeeAndReporting = new EmployeeAndReporting();
	private EmployeeAndReportingDAO employeeAndReportingDAO = new EmployeeAndReportingDAO();
	private boolean renderEmployeeList;
	private String selectedProjectStatus;
	private boolean FORM_VALID;
	private boolean SHOW_EDIT_DIALOG;
	private boolean HAS_EDIT_EMP_INFO_PERMISSION;
	private boolean HAS_VIEW_EMP_INFO_PERMISSION;
	private boolean HAS_RELIEVE_EMPLOYEE_PERMISSION;
	RolePermissionDAO rolePermissionDAO = new RolePermissionDAO();
	private boolean EMPLOYEE_FOUND = true;
	private List<LookupValue> lookupValuesList = new ArrayList<LookupValue>();
	private boolean RENDER_OTHER_MODULE;
	private boolean RENDER_OTHER_DESIGNATION;
	private String otherModule;
	private String otherDesignation;
	private SAPERPModuleDAO sapERPModuleDAO = new SAPERPModuleDAO();
	private CustomLookupDAO customLookupDAO = new CustomLookupDAO();
	
	public EmployeeSearchBean() {
		if (employeeDAO == null)
			employeeDAO = new EmployeeDAO();
		if (saperpModuleDAO == null)
			saperpModuleDAO = new SAPERPModuleDAO();
		if (roleDAO == null)
			roleDAO = new RoleDAO();

		List<SAPERPModule> saperpModules = saperpModuleDAO.getSAPERPModules();

		for (SAPERPModule saperpModule : saperpModules) {
			modulesMap.put(saperpModule.getDisplayName(),
					saperpModule.getDisplayName());
		}

		List<Role> roles = roleDAO.getAllRoles();
		List<Employee> employeeCompetencyLeadsList = employeeAndReportingDAO
				.getAllLeadEmployeesList();
		List<Employee> employeeProjectManagersList = employeeAndReportingDAO
				.getAllLeadEmployeesList();
		List<Employee> employeeCetnerHeadsList = employeeAndReportingDAO
				.getCenterHeadsList();
		projectStatusMap = CommonLookup.getProjectsStatusMap();

		for (Employee employee : employeeCompetencyLeadsList) {
			competencyLeadsMap.put(
					employee.getFirstName() + " " + employee.getLastName(),
					employee.getEmployeeId());
		}
		for (Employee employee : employeeProjectManagersList) {
			projectManagersMap.put(
					employee.getFirstName() + " " + employee.getLastName(),
					employee.getEmployeeId());
		}
		for (Employee employee : employeeCetnerHeadsList) {
			centerHeadsMap.put(
					employee.getFirstName() + employee.getLastName(),
					employee.getEmployeeId());
		}

		for (Role role : roles) {
			rolesMap.put(role.getRole(), role.getRoleId());
		}

		if (rolePermissionDAO.hasRolePermission(
				CommonLookup.PERMISSION_EDIT_EMPLOYEE_INFO, wamUser
						.getEmployee().getEmployeeId())) {
			HAS_EDIT_EMP_INFO_PERMISSION = true;
		} else {
			HAS_EDIT_EMP_INFO_PERMISSION = false;
		}
		
	
		if (rolePermissionDAO.hasRolePermission(
				CommonLookup.PERMISSION_VIEW_EMPLOYEE_INFO, wamUser
						.getEmployee().getEmployeeId())) {
			HAS_VIEW_EMP_INFO_PERMISSION = true;
		} else {
			HAS_VIEW_EMP_INFO_PERMISSION = false;
		}
	    
		if (rolePermissionDAO.hasRolePermission(
				CommonLookup.PERMISSION_TO_RELIEVE_EMPLOYEE, wamUser
						.getEmployee().getEmployeeId())) {
			HAS_RELIEVE_EMPLOYEE_PERMISSION = true;
		} else {
			HAS_RELIEVE_EMPLOYEE_PERMISSION = false;
		}
		
		
		
		
		selectedModule = wamUser.getEmployee().getModuleName();
		selectedEmployee = new Employee();
		lookupValuesList = new CustomLookupDAO().getLookupValuesListByCustomLookupName(CommonLookup.DESIGNATION_CUSTOMLOOKUP_VALUE);
		for(LookupValue lookupValue : lookupValuesList){
			designationsMap.put(lookupValue.getLookupName(), lookupValue.getLookupValue());
		}
		

	}

	public String searchEmployees() {
		System.out.println("Search Action...");

		if (validateSearchField()) {
			
			employees = employeeDAO.getEmployees(selectedModule, location,
						employeeCode, employeeName);	
			
			
			if (employees != null && employees.size() > 0) {
				setRenderEmployeeList(true);
				System.out.println("EMPLOYEE COUNT: " + employees.size());
				EMPLOYEE_FOUND = true;
			} else {
				EMPLOYEE_FOUND = false;
				setRenderEmployeeList(false);
			}
			SHOW_EDIT_DIALOG = false;
		}

		return null;
	}

	private boolean validateSearchField() {
		boolean VALID = true;

		if (ValidationUtil.isEmpty(location, "Location ", "",
				FacesContext.getCurrentInstance()) != null) {
			VALID = false;
		}

		return VALID;
	}
	
	public void otherModuleListner(AjaxBehaviorEvent a){
		System.out.println("MODULE LISTNER");
		System.out.println("SELECTED MODULE ="+selectedEmployee.getModuleName());
		if(selectedEmployee.getModuleName() != null && selectedEmployee.getModuleName().equals("Other")){
			
			RENDER_OTHER_MODULE = true;
			selectedEmployee.setModuleName(otherModule);
		}else{
			RENDER_OTHER_MODULE = false;
			System.out.println("SELECTED MODULE ="+selectedEmployee.getModuleName());
		}
		
	}
	public void otherDesignationListner(AjaxBehaviorEvent a){
		System.out.println("MODULE LISTNER");
		System.out.println("SELECTED MODULE ="+selectedEmployee.getDesignation());
		if(selectedEmployee.getDesignation() != null && selectedEmployee.getDesignation().equals("Other")){
			
			setRENDER_OTHER_DESIGNATION(true);
			
		}else{
			setRENDER_OTHER_DESIGNATION(false);
			System.out.println("SELECTED MODULE ="+selectedEmployee.getDesignation());
		}
		
	}
	

	public void updateEmployee(ActionEvent e) {
		RENDER_OTHER_MODULE = false;
		RENDER_OTHER_DESIGNATION = false;
		validate();

		if (FORM_VALID) {
			System.out.println("Updating Employee...");
			System.out.println("SELECTED CENTER HEAD ID = "
					+ selectedCenterHeadId);
			System.out.println("SELECTED CENTER HEAD ID = "
					+ selectedCompetencyLeadId);
			System.out.println("SELECTED CENTER HEAD ID = "
					+ selectedProjectManagerId);
			selectedCenterHead = employeeDAO
					.getEmployeeByEmployeeId(selectedCenterHeadId);
			selectedProjectManager = employeeDAO
					.getEmployeeByEmployeeId(selectedProjectManagerId);
			selectedCompetencyLead = employeeDAO
					.getEmployeeByEmployeeId(selectedCompetencyLeadId);
			if(selectedEmployee != null && selectedEmployee.getModuleName().equals("Other")){
				selectedEmployee.setModuleName(otherModule);
				SAPERPModule sapERPModule = new SAPERPModule();
				sapERPModule.setSAPERPModule(otherModule);
				sapERPModule.setDisplayName(otherModule);
				sapERPModule.setCreateDate(new Date());
				sapERPModule.setCreatedBy(wamUser.getEmployee().getFirstName()+""+wamUser.getEmployee().getLastName());
				sapERPModule.setStatus(CommonLookup.STATUS_ACTIVE);
				sapERPModuleDAO.createSAPERPModule(sapERPModule);
			}
			if(selectedEmployee != null && selectedEmployee.getDesignation().equals("Other")){
				selectedEmployee.setDesignation(otherDesignation);
				CustomLookup customLookup = new CustomLookupDAO().getCustomLookUp(CommonLookup.DESIGNATION_CUSTOMLOOKUP_VALUE);
				LookupValue lookUpValue = new LookupValue();
				lookUpValue.setCustomLookup(customLookup);
				lookUpValue.setLookupValue(otherDesignation);
				lookUpValue.setLookupName(otherDesignation);
				lookUpValue.setCreateDate(new Date());
				lookUpValue.setCreatedBy(wamUser.getEmployee().getFirstName()+" "+wamUser.getEmployee().getLastName());
				lookUpValue.setStatus(CommonLookup.STATUS_ACTIVE);
				
				customLookupDAO.createLookupValue(lookUpValue);
			}
			
			employeeDAO.updateEmployee(selectedEmployee);
			employeeAndReporting.setCenterHead(selectedCenterHead);
			employeeAndReporting.setCompetencelead(selectedCompetencyLead);
			employeeAndReporting.setProjectManager(selectedProjectManager);
			employeeAndReporting.setProject(assignedProject);
			employeeAndReporting.setProjectStatus(selectedProjectStatus);
			employeeAndReporting.setStartDate(projectStartDate);
			employeeAndReporting.setEndDate(projectEndDate);
			employeeAndReportingDAO
					.updateEmployeeAndReporting(employeeAndReporting);
			// Code for updating Employee Role...
			selectedRole = roleDAO.getRoleByRoleID(selectedRoleId);
			if (selectedEmployeeRole != null) {
				selectedEmployeeRole.setRole(selectedRole);
				employeeRoleDAO.updateEmployeeRole(selectedEmployeeRole);
				selectedEmployee = new Employee();

			} else {
				selectedEmployeeRole = new EmployeeRole();
				selectedEmployeeRole.setCreateDate(new Date());
				selectedEmployeeRole.setCreatedBy(wamUser.getFirstname());
				selectedEmployeeRole.setEmployee(selectedEmployee);
				selectedEmployeeRole.setRole(selectedRole);
				selectedEmployeeRole.setStatus(CommonLookup.STATUS_ACTIVE);
				employeeRoleDAO.updateEmployeeRole(selectedEmployeeRole);
				selectedEmployee = new Employee();

			}
			SHOW_EDIT_DIALOG = false;
			RequestContext.getCurrentInstance().addPartialUpdateTarget(
					"employeeSearchForm");
			RequestContext.getCurrentInstance().execute(
					"employeeEditDialog.hide();");
		} else {
			RequestContext.getCurrentInstance().execute(
					"employeeEditDialog.show();");
		}
	}
	
	public void relieveEmployee(ActionEvent a){
		
		selectedEmployee.setStatus(CommonLookup.STATUS_INACTIVE);
		selectedEmployee.setRelieved(CommonLookup.RELIEVE_EMPLOYEE);
		employeeDAO.updateEmployee(selectedEmployee);
		SHOW_EDIT_DIALOG = false;
		RequestContext.getCurrentInstance().addPartialUpdateTarget(
				"employeeSearchForm");
		RequestContext.getCurrentInstance().execute(
				"employeeEditDialog.hide();");
	}

	
	public void dialogClose() {
		// Replacing the arraylist content with original record from database...
		RENDER_OTHER_MODULE = false;
		RENDER_OTHER_DESIGNATION = false;
		employees.set(employees.indexOf(selectedEmployee), employeeDAO
				.getEmployeeByEmployeeId(selectedEmployee.getEmployeeId()));
		RequestContext.getCurrentInstance().execute(
				"employeeEditDialog.hide();");
	}

	@SuppressWarnings("unused")
	public void validate() {
		setFORM_VALID(true);
		Role selectedRole = new RoleDAO().getRoleByRoleID(selectedRoleId);
		Employee projectManager = new EmployeeDAO()
				.getEmployeeByEmployeeId(selectedProjectManagerId);
		Employee competencyLead = new EmployeeDAO()
				.getEmployeeByEmployeeId(selectedCompetencyLeadId);
		Employee centerHead = new EmployeeDAO()
				.getEmployeeByEmployeeId(selectedCenterHeadId);

		if (ValidationUtil.isEmpty(selectedEmployee.getFirstName(),
				"First Name", "firstName", FacesContext.getCurrentInstance()) != null) {
			setFORM_VALID(false);
		}
		if (ValidationUtil.isEmpty(selectedEmployee.getLastName(), "Last Name",
				"lastName", FacesContext.getCurrentInstance()) != null) {
			setFORM_VALID(false);
		}

		if (ValidationUtil.isEmpty(selectedEmployee.getModuleName(),
				"Module Name", "moduleName", FacesContext.getCurrentInstance()) != null) {
			setFORM_VALID(false);
		}else if(selectedEmployee.getModuleName() != null && selectedEmployee.getModuleName().equals("Other")){

			if (ValidationUtil.isEmpty(otherModule, "Module",
					null, FacesContext.getCurrentInstance()) != null) {
				
				setFORM_VALID(false);
			}
		}

		if (ValidationUtil
				.isEmpty(selectedEmployee.getDesignation(), "Designation",
						"designation", FacesContext.getCurrentInstance()) != null) {
			setFORM_VALID(false);
		}else if(selectedEmployee.getDesignation() != null && selectedEmployee.getDesignation().equals("Other")){

			if (ValidationUtil.isEmpty(otherDesignation, "Designation",
					null, FacesContext.getCurrentInstance()) != null) {
				
				setFORM_VALID(false);
			}
		}

		if (ValidationUtil
				.isEmpty(
						(selectedRole != null && selectedRole.getRoleId() != 0) ? selectedRole
								.getRoleId().toString() : null, "Role", null,
						FacesContext.getCurrentInstance()) != null) {
			System.out.println("Role is empty.");
			setFORM_VALID(false);

		}

		if (selectedRole != null
				&& selectedRole.getRole().equals(CommonLookup.STANDARD_ROLE_VP)
				|| selectedRole != null
				&& selectedRole.getRole()
						.equals(CommonLookup.STANDARD_ROLE_CMD)) {

		} else {

			if (ValidationUtil
					.isEmpty((competencyLead != null && competencyLead
							.getEmployeeId() != 0) ? competencyLead
							.getEmployeeId().toString() : null,
							"Competency Lead ", null, FacesContext
									.getCurrentInstance()) != null) {
				System.out.println("Compentency Lead is empty.");
				setFORM_VALID(false);
			}

			if (ValidationUtil
					.isEmpty((projectManager != null && projectManager
							.getEmployeeId() != 0) ? projectManager
							.getEmployeeId().toString() : null,
							"Project Manager", null, FacesContext
									.getCurrentInstance()) != null) {
				System.out.println("Project Manager is empty.");

				setFORM_VALID(false);

			}

			if(employeeAndReportingDAO.getCenterHeadsList() != null && employeeAndReportingDAO.getCenterHeadsList().size() > 0)
				if (ValidationUtil.isEmpty((centerHead != null && centerHead
						.getEmployeeId() != 0) ? centerHead.getEmployeeId()
						.toString() : null, "Center Head", null, FacesContext.getCurrentInstance()) != null) {
					
					
					setFORM_VALID(false);
				}
		}

		
	}

	public String viewEmployeeInEditMode() {

		System.out.println("viewEmployeeInEditMode method...");

		selectedRoleId = null;
		selectedEmployeeRole = null;
		employeeAndReporting = null;
		if (employeeRoleDAO == null)
			employeeRoleDAO = new EmployeeRoleDAO();
		if (employeeAndReportingDAO == null)
			employeeAndReportingDAO = new EmployeeAndReportingDAO();
		employeeAndReporting = employeeAndReportingDAO
				.getEmployeeReportingDetail(selectedEmployee.getEmployeeId());
		selectedEmployeeRole = employeeRoleDAO.getEmployeeRole(
				selectedEmployee.getEmployeeId(), null);

		if (selectedEmployeeRole != null) {
			System.out.println("EMPLOYEE ROLE IF");
			selectedRole = selectedEmployeeRole.getRole();
			if (selectedRole != null)
				selectedRoleId = selectedRole.getRoleId();
		} else {
			System.out.println("EMPLOYEE ROLE ELSE");
		}
		if (employeeAndReporting.getCenterHead() != null) {
			selectedCenterHeadId = employeeAndReporting.getCenterHead()
					.getEmployeeId();
		} else {

		}

		if (employeeAndReporting.getCompetencelead() != null) {
			selectedCompetencyLeadId = employeeAndReporting.getCompetencelead()
					.getEmployeeId();
		}
		if (employeeAndReporting.getProjectManager() != null) {
			selectedProjectManagerId = employeeAndReporting.getProjectManager()
					.getEmployeeId();
		}

		if (employeeAndReporting.getProjectStatus() != null
				&& !employeeAndReporting.getProjectStatus().equals("")) {
			System.out.println("IF");
			selectedProjectStatus = employeeAndReporting.getProjectStatus();

		} else {
			System.out.println("ELSE");
		}

		if (employeeAndReporting.getStartDate() != null) {
			System.out.println("IF");
			projectStartDate = employeeAndReporting.getStartDate();

		} else {
			System.out.println("ELSE");
		}

		if (employeeAndReporting.getEndDate() != null) {
			System.out.println("IF");
			projectEndDate = employeeAndReporting.getEndDate();

		} else {
			System.out.println("ELSE");
		}

		if (employeeAndReporting.getProject() != null
				&& !employeeAndReporting.getProject().equals("")) {
			System.out.println("IF");
			assignedProject = employeeAndReporting.getProject();

		} else {
			System.out.println("ELSE");
		}

		System.out.println(selectedRoleId);

		SHOW_EDIT_DIALOG = true;

		return null;
	}

	public void deleteClickActionListener(ActionEvent e) {
		System.out.println("DELETE>..");

	}

	public List<Employee> getEmployees() {
		return employees;
	}

	public void setEmployees(List<Employee> employees) {
		this.employees = employees;
	}

	public Map<String, String> getModulesMap() {
		return modulesMap;
	}

	public void setModulesMap(Map<String, String> modulesMap) {
		this.modulesMap = modulesMap;
	}

	public Map<String, String> getLocationsMap() {
		return locationsMap;
	}

	public void setLocationsMap(Map<String, String> locationsMap) {
		this.locationsMap = locationsMap;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public String getEmployeeCode() {
		return employeeCode;
	}

	public void setEmployeeCode(String employeeCode) {
		this.employeeCode = employeeCode;
	}

	public String getEmployeeName() {
		return employeeName;
	}

	public void setEmployeeName(String employeeName) {
		this.employeeName = employeeName;
	}

	public String getSelectedModule() {
		return selectedModule;
	}

	public void setSelectedModule(String selectedModule) {
		this.selectedModule = selectedModule;
	}

	public boolean isRenderEmployeeList() {
		return renderEmployeeList;
	}

	public void setRenderEmployeeList(boolean renderEmployeeList) {
		this.renderEmployeeList = renderEmployeeList;
	}

	public Employee getSelectedEmployee() {
		return selectedEmployee;
	}

	public void setSelectedEmployee(Employee selectedEmployee) {
		this.selectedEmployee = selectedEmployee;
	}

	public Map<String, String> getDesignationsMap() {
		return designationsMap;
	}

	public void setDesignationsMap(Map<String, String> designationsMap) {
		this.designationsMap = designationsMap;
	}

	public Map<String, Long> getRolesMap() {
		return rolesMap;
	}

	public void setRolesMap(Map<String, Long> rolesMap) {
		this.rolesMap = rolesMap;
	}

	public Role getSelectedRole() {
		return selectedRole;
	}

	public void setSelectedRole(Role selectedRole) {
		this.selectedRole = selectedRole;
	}

	public Long getSelectedRoleId() {
		return selectedRoleId;
	}

	public void setSelectedRoleId(Long selectedRoleId) {
		this.selectedRoleId = selectedRoleId;
	}

	public boolean isFORM_VALID() {
		return FORM_VALID;
	}

	public void setFORM_VALID(boolean fORM_VALID) {
		FORM_VALID = fORM_VALID;
	}

	public boolean isSHOW_EDIT_DIALOG() {
		return SHOW_EDIT_DIALOG;
	}

	public void setSHOW_EDIT_DIALOG(boolean sHOW_EDIT_DIALOG) {
		SHOW_EDIT_DIALOG = sHOW_EDIT_DIALOG;
	}

	public boolean isHAS_EDIT_EMP_INFO_PERMISSION() {
		return HAS_EDIT_EMP_INFO_PERMISSION;
	}

	public void setHAS_EDIT_EMP_INFO_PERMISSION(
			boolean hAS_EDIT_EMP_INFO_PERMISSION) {
		HAS_EDIT_EMP_INFO_PERMISSION = hAS_EDIT_EMP_INFO_PERMISSION;
	}

	public WAMUser getWamUser() {
		return wamUser;
	}

	public void setWamUser(WAMUser wamUser) {
		this.wamUser = wamUser;
	}

	public EmployeeAndReporting getProjectManager() {
		return projectManager;
	}

	public void setProjectManager(EmployeeAndReporting projectManager) {
		this.projectManager = projectManager;
	}

	public EmployeeAndReporting getEmployeeAndReporting() {
		return employeeAndReporting;
	}

	public void setEmployeeAndReporting(
			EmployeeAndReporting employeeAndReporting) {
		this.employeeAndReporting = employeeAndReporting;
	}

	public Map<String, Long> getCompetencyLeadsMap() {
		return competencyLeadsMap;
	}

	public void setCompetencyLeadsMap(Map<String, Long> competencyLeadsMap) {
		this.competencyLeadsMap = competencyLeadsMap;
	}

	public Map<String, Long> getProjectManagersMap() {
		return projectManagersMap;
	}

	public void setProjectManagersMap(Map<String, Long> projectManagersMap) {
		this.projectManagersMap = projectManagersMap;
	}

	public Map<String, Long> getCenterHeadsMap() {
		return centerHeadsMap;
	}

	public void setCenterHeadsMap(Map<String, Long> centerHeadsMap) {
		this.centerHeadsMap = centerHeadsMap;
	}

	public Long getSelectedCompetencyLeadId() {
		return selectedCompetencyLeadId;
	}

	public void setSelectedCompetencyLeadId(Long selectedCompetencyLeadId) {
		this.selectedCompetencyLeadId = selectedCompetencyLeadId;
	}

	public Long getSelectedCenterHeadId() {
		return selectedCenterHeadId;
	}

	public void setSelectedCenterHeadId(Long selectedCenterHeadId) {
		this.selectedCenterHeadId = selectedCenterHeadId;
	}

	public String getAssignedProject() {
		return assignedProject;
	}

	public void setAssignedProject(String assignedProject) {
		this.assignedProject = assignedProject;
	}

	public Long getSelectedProjectManagerId() {
		return selectedProjectManagerId;
	}

	public void setSelectedProjectManagerId(Long selectedProjectManagerId) {
		this.selectedProjectManagerId = selectedProjectManagerId;
	}

	public Date getProjectStartDate() {
		return projectStartDate;
	}

	public void setProjectStartDate(Date projectStartDate) {
		this.projectStartDate = projectStartDate;
	}

	public Date getProjectEndDate() {
		return projectEndDate;
	}

	public void setProjectEndDate(Date projectEndDate) {
		this.projectEndDate = projectEndDate;
	}

	public Date getProjectStatus() {
		return projectStatus;
	}

	public void setProjectStatus(Date projectStatus) {
		this.projectStatus = projectStatus;
	}

	public Map<String, String> getProjectStatusMap() {
		return projectStatusMap;
	}

	public void setProjectStatusMap(Map<String, String> projectStatusMap) {
		this.projectStatusMap = projectStatusMap;
	}

	public String getSelectedProjectStatus() {
		return selectedProjectStatus;
	}

	public void setSelectedProjectStatus(String selectedProjectStatus) {
		this.selectedProjectStatus = selectedProjectStatus;
	}

	public Employee getSelectedCompetencyLead() {
		return selectedCompetencyLead;
	}

	public void setSelectedCompetencyLead(Employee selectedCompetencyLead) {
		this.selectedCompetencyLead = selectedCompetencyLead;
	}

	public Employee getSelectedProjectManager() {
		return selectedProjectManager;
	}

	public void setSelectedProjectManager(Employee selectedProjectManager) {
		this.selectedProjectManager = selectedProjectManager;
	}

	public Employee getSelectedCenterHead() {
		return selectedCenterHead;
	}

	public void setSelectedCenterHead(Employee selectedCenterHead) {
		this.selectedCenterHead = selectedCenterHead;
	}

	public boolean isEMPLOYEE_FOUND() {
		return EMPLOYEE_FOUND;
	}

	public void setEMPLOYEE_FOUND(boolean eMPLOYEE_FOUND) {
		EMPLOYEE_FOUND = eMPLOYEE_FOUND;
	}

	public boolean isHAS_VIEW_EMP_INFO_PERMISSION() {
		return HAS_VIEW_EMP_INFO_PERMISSION;
	}

	public void setHAS_VIEW_EMP_INFO_PERMISSION(boolean hAS_VIEW_EMP_INFO_PERMISSION) {
		HAS_VIEW_EMP_INFO_PERMISSION = hAS_VIEW_EMP_INFO_PERMISSION;
	}

	public TimeZone getTimeZone() {
		return timeZone;
	}

	public void setTimeZone(TimeZone timeZone) {
		this.timeZone = timeZone;
	}

	public List<LookupValue> getLookupValuesList() {
		return lookupValuesList;
	}

	public void setLookupValuesList(List<LookupValue> lookupValuesList) {
		this.lookupValuesList = lookupValuesList;
	}

	public boolean isHAS_RELIEVE_EMPLOYEE_PERMISSION() {
		return HAS_RELIEVE_EMPLOYEE_PERMISSION;
	}

	public void setHAS_RELIEVE_EMPLOYEE_PERMISSION(
			boolean hAS_RELIEVE_EMPLOYEE_PERMISSION) {
		HAS_RELIEVE_EMPLOYEE_PERMISSION = hAS_RELIEVE_EMPLOYEE_PERMISSION;
	}

	public boolean isRENDER_OTHER_MODULE() {
		return RENDER_OTHER_MODULE;
	}

	public void setRENDER_OTHER_MODULE(boolean rENDER_OTHER_MODULE) {
		RENDER_OTHER_MODULE = rENDER_OTHER_MODULE;
	}

	public String getOtherModule() {
		return otherModule;
	}

	public void setOtherModule(String otherModule) {
		this.otherModule = otherModule;
	}

	public String getOtherDesignation() {
		return otherDesignation;
	}

	public void setOtherDesignation(String otherDesignation) {
		this.otherDesignation = otherDesignation;
	}

	public boolean isRENDER_OTHER_DESIGNATION() {
		return RENDER_OTHER_DESIGNATION;
	}

	public void setRENDER_OTHER_DESIGNATION(boolean rENDER_OTHER_DESIGNATION) {
		RENDER_OTHER_DESIGNATION = rENDER_OTHER_DESIGNATION;
	}

}
